/**
 * @author 秦易达
 *
 */
package com.lmx.repoDomain.tmodel;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import io.katharsis.resource.annotations.JsonApiIncludeByDefault;
import io.katharsis.resource.annotations.JsonApiResource;
import io.katharsis.resource.annotations.JsonApiToOne;
import org.hibernate.annotations.Fetch;
import org.hibernate.annotations.FetchMode;
import com.lmx.repoDomain.tmodel.business.User;//huibati;
import javax.persistence.*;

/**
 * 工单信息追加表
 */
@Entity
@Table(name = "ccd_workorder_add")
@JsonApiResource(type = "workorderAdd")
//@JsonIgnoreProperties(value={"hibernateLazyInitializer","handler"})
public class WorkorderAdd extends BaseEntity {
	private String code; // 工单编码
	private Workorder workorder;//工单
	private String content;//内容
	private User additional;//追加人
	private Integer remindTime;// 提醒时间
	private Short additionalType;// 追加类型
	private Integer createTime;//创建时间
	private String remark;//备注

	@Column(name = "code")
	public String getCode() {
		return code;
	}

	public void setCode(String code) {
		this.code = code;
	}

	@JsonApiToOne
	@ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.REFRESH)
	@JoinColumn(name = "workorder_id",foreignKey = @ForeignKey(name = "null"))
	@JsonApiIncludeByDefault
	@Fetch(FetchMode.JOIN)
	public Workorder getWorkorder() {
		return workorder;
	}

	public void setWorkorder(Workorder workorder) {
		this.workorder = workorder;
	}

	@Column(name = "content")
	public String getContent() {
		return content;
	}

	public void setContent(String content) {
		this.content = content;
	}

	@JsonApiToOne
	@ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.REFRESH)
	@JoinColumn(name = "additional_id",foreignKey = @ForeignKey(name = "null"))
	public User getAdditional() {
		return additional;
	}

	public void setAdditional(User additional) {
		this.additional = additional;
	}

	@Column(name = "remind_time")
	public Integer getRemindTime() {
		return remindTime;
	}

	public void setRemindTime(Integer remindTime) {
		this.remindTime = remindTime;
	}

	@Column(name = "additional_type")
	public Short getAdditionalType() {
		return additionalType;
	}

	public void setAdditionalType(Short additionalType) {
		this.additionalType = additionalType;
	}

	@Column(name = "create_time")
	public Integer getCreateTime() {
		return createTime;
	}

	public void setCreateTime(Integer createTime) {
		this.createTime = createTime;
	}

	@Column(name = "remark")
	public String getRemark() {
		return remark;
	}

	public void setRemark(String remark) {
		this.remark = remark;
	}
}
